[INFO] fetching crate strange 0.9.0...
[INFO] checking strange-0.9.0 against try#72f88fc4e9458f89516a0b8b0868f3718aec5b47 for pr-74989
[INFO] extracting crate strange 0.9.0 into /workspace/builds/worker-7/source
[INFO] validating manifest of crates.io crate strange 0.9.0 on toolchain 72f88fc4e9458f89516a0b8b0868f3718aec5b47
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate strange 0.9.0
[INFO] finished tweaking crates.io crate strange 0.9.0
[INFO] tweaked toml for crates.io crate strange 0.9.0 written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pest v0.4.1
[INFO] [stderr]   Downloaded slog-scope v0.2.2
[INFO] [stderr]   Downloaded slog v1.7.1
[INFO] [stderr]   Downloaded slog-stream v1.2.1
[INFO] [stderr]   Downloaded slog-extra v0.1.2
[INFO] [stderr]   Downloaded slog-term v1.5.0
[INFO] [stderr]   Downloaded tera v0.10.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fc208f37d603c82b76dfbc2a068f975363bc23fa176fd67c611727c417a6c42a
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "fc208f37d603c82b76dfbc2a068f975363bc23fa176fd67c611727c417a6c42a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fc208f37d603c82b76dfbc2a068f975363bc23fa176fd67c611727c417a6c42a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fc208f37d603c82b76dfbc2a068f975363bc23fa176fd67c611727c417a6c42a", kill_on_drop: false }`
[INFO] [stdout] fc208f37d603c82b76dfbc2a068f975363bc23fa176fd67c611727c417a6c42a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 22cddf6c2c4b76dbe6ca34dc6e119cee3834f908afe2d8fa35677944c4384829
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "22cddf6c2c4b76dbe6ca34dc6e119cee3834f908afe2d8fa35677944c4384829", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.77
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking futures v0.1.29
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling serde v1.0.116
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.21
[INFO] [stderr]    Compiling regex v0.2.11
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]     Checking ucd-util v0.1.8
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]     Checking slog v1.7.1
[INFO] [stderr]     Checking tinyvec v0.3.4
[INFO] [stderr]    Compiling syn v1.0.40
[INFO] [stderr]     Checking utf8-ranges v1.0.4
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking slab v0.3.0
[INFO] [stderr]    Compiling pulldown-cmark v0.1.2
[INFO] [stderr]     Checking smallvec v0.2.1
[INFO] [stderr]     Checking deunicode v0.4.3
[INFO] [stderr]     Checking try-lock v0.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.116
[INFO] [stderr]     Checking take v0.1.0
[INFO] [stderr]     Checking glob v0.2.11
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking humansize v1.1.0
[INFO] [stderr]     Checking pest v0.3.3
[INFO] [stderr]     Checking language-tags v0.2.2
[INFO] [stderr]     Checking dtoa v0.4.6
[INFO] [stderr]     Checking pest v0.4.1
[INFO] [stderr]     Checking crossbeam v0.2.12
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking mime v0.3.16
[INFO] [stderr]     Checking term v0.4.6
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking regex-syntax v0.5.6
[INFO] [stderr]     Checking unicode-normalization v0.1.13
[INFO] [stderr]     Checking yaml-rust v0.4.4
[INFO] [stderr]     Checking slug v0.1.4
[INFO] [stderr]     Checking log v0.4.11
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]     Checking slog-extra v0.1.2
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.5
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]     Checking slog-stream v1.2.1
[INFO] [stderr]     Checking slog-scope v0.2.2
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking base64 v0.9.3
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking aho-corasick v0.6.10
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking net2 v0.2.35
[INFO] [stderr]     Checking parking_lot_core v0.6.2
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking backtrace v0.3.50
[INFO] [stderr]     Checking inotify-sys v0.1.3
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking filetime v0.2.12
[INFO] [stderr]     Checking isatty v0.1.9
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking tokio-service v0.1.0
[INFO] [stderr]     Checking want v0.0.4
[INFO] [stderr]     Checking relay v0.1.1
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking futures-cpupool v0.1.8
[INFO] [stderr]     Checking inotify v0.7.1
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking parking_lot v0.9.0
[INFO] [stderr]     Checking error-chain v0.10.0
[INFO] [stderr]     Checking error-chain v0.11.0
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking crossbeam-channel v0.4.4
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking chrono v0.4.15
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking chrono v0.2.25
[INFO] [stderr]     Checking rayon-core v1.8.0
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking notify v4.0.15
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking slog-term v1.5.0
[INFO] [stderr]     Checking tokio-core v0.1.17
[INFO] [stderr]     Checking rayon v0.8.2
[INFO] [stderr]     Checking tokio-proto v0.1.1
[INFO] [stderr]     Checking hyper v0.11.27
[INFO] [stderr]     Checking serde_json v1.0.57
[INFO] [stderr]     Checking serde_yaml v0.7.5
[INFO] [stderr]     Checking handlebars v0.29.1
[INFO] [stderr]     Checking tera v0.10.10
[INFO] [stderr]     Checking strange v0.9.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:26
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:38
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:50
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:61
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:72
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                                                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/models/file.rs:86:40
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub page: RwLock<BTreeMap<String, Box<PluginPageData + Send + Sync>>>,
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PluginPageData + Send + Sync`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/models/file.rs:431:51
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn add_page_data(&self, name: &str, val: Box<PluginPageData + Send + Sync>) {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PluginPageData + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/plugin/mod.rs:51:20
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl Serialize for PluginPageData + Send + Sync{
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PluginPageData + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/plugin/mod.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Debug for PluginPageData + Send + Sync {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PluginPageData + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/plugin/mod.rs:99:28
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct Plugins(Vec<Box<Plugin + Send + Sync>>);
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Plugin + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/plugin/mod.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut plugin_list: Vec<Box<Plugin + Send + Sync>> = Vec::new();
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Plugin + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:243:2
[INFO] [stdout]     |
[INFO] [stdout] 243 |     ;
[INFO] [stdout]     |     ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |             ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:26
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:38
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:50
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:61
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]   --> src/main.rs:42:72
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[macro_use(o, slog_log, slog_trace, slog_debug, slog_info, slog_warn, slog_error)]
[INFO] [stdout]    |                                                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/models/file.rs:86:40
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub page: RwLock<BTreeMap<String, Box<PluginPageData + Send + Sync>>>,
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PluginPageData + Send + Sync`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/models/file.rs:431:51
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn add_page_data(&self, name: &str, val: Box<PluginPageData + Send + Sync>) {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PluginPageData + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/plugin/mod.rs:51:20
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl Serialize for PluginPageData + Send + Sync{
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PluginPageData + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/plugin/mod.rs:60:16
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Debug for PluginPageData + Send + Sync {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PluginPageData + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/plugin/mod.rs:99:28
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct Plugins(Vec<Box<Plugin + Send + Sync>>);
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Plugin + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/plugin/mod.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut plugin_list: Vec<Box<Plugin + Send + Sync>> = Vec::new();
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Plugin + Send + Sync`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/main.rs:243:2
[INFO] [stdout]     |
[INFO] [stdout] 243 |     ;
[INFO] [stdout]     |     ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / error_chain! {
[INFO] [stdout] 20 | |     errors {
[INFO] [stdout] 21 | |         Warning(msg: String) {
[INFO] [stdout] 22 | |             description("Warning")
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     }
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / error_chain! {
[INFO] [stdout] 20 | |     errors {
[INFO] [stdout] 21 | |         Warning(msg: String) {
[INFO] [stdout] 22 | |             description("Warning")
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     }
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / error_chain! {
[INFO] [stdout] 20 | |     errors {
[INFO] [stdout] 21 | |         Warning(msg: String) {
[INFO] [stdout] 22 | |             description("Warning")
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     }
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / error_chain! {
[INFO] [stdout] 20 | |     errors {
[INFO] [stdout] 21 | |         Warning(msg: String) {
[INFO] [stdout] 22 | |             description("Warning")
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     }
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/models/directory.rs:177:19
[INFO] [stdout]     |
[INFO] [stdout] 59  |       pub fn scan_from<P>(p: P, config: &Config) -> Result<Directory>
[INFO] [stdout]     |  _____-
[INFO] [stdout] 60  | |         where P: AsRef<Path>
[INFO] [stdout]     | |____________________________- defined here
[INFO] [stdout] ...
[INFO] [stdout] 177 |           let dir = Directory::scan_from("tests/fixtures").expect("Error scanning");
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^ ---------------- supplied 1 argument
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     expected 2 arguments
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:544:7
[INFO] [stdout]     |
[INFO] [stdout] 544 |         let (name, types) = File::detect_extensions(Path::new("file.md"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   --------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:548:7
[INFO] [stdout]     |
[INFO] [stdout] 548 |         let (name, types) = File::detect_extensions(Path::new("file.md.tera"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   -------------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:552:7
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let (name, types) = File::detect_extensions(Path::new("file.tera.md"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   -------------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:556:7
[INFO] [stdout]     |
[INFO] [stdout] 556 |         let (name, types) = File::detect_extensions(Path::new("file.md.twig"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   -------------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:560:7
[INFO] [stdout]     |
[INFO] [stdout] 560 |         let (name, types) = File::detect_extensions(Path::new("file.md.j2"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ------------------------------------------------ this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:564:7
[INFO] [stdout]     |
[INFO] [stdout] 564 |         let (name, types) = File::detect_extensions(Path::new("file.md.jinja2"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ---------------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:568:7
[INFO] [stdout]     |
[INFO] [stdout] 568 |         let (name, types) = File::detect_extensions(Path::new("file.md.hbs"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ------------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:572:7
[INFO] [stdout]     |
[INFO] [stdout] 572 |         let (name, types) = File::detect_extensions(Path::new("file.hbs"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ---------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:576:7
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let (name, types) = File::detect_extensions(Path::new("file.html"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ----------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:580:7
[INFO] [stdout]     |
[INFO] [stdout] 580 |         let (name, types) = File::detect_extensions(Path::new("file.md.html"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   -------------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:584:7
[INFO] [stdout]     |
[INFO] [stdout] 584 |         let (name, types) = File::detect_extensions(Path::new("file.tera.html"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ---------------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:588:7
[INFO] [stdout]     |
[INFO] [stdout] 588 |         let (name, types) = File::detect_extensions(Path::new("file.twig.html"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ---------------------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:592:7
[INFO] [stdout]     |
[INFO] [stdout] 592 |         let (name, types) = File::detect_extensions(Path::new("file"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ------------------------------------------ this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:596:7
[INFO] [stdout]     |
[INFO] [stdout] 596 |         let (name, types) = File::detect_extensions(Path::new("tera"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ------------------------------------------ this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:600:7
[INFO] [stdout]     |
[INFO] [stdout] 600 |         let (name, types) = File::detect_extensions(Path::new("twig"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ------------------------------------------ this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:245:24
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     format!("{}\n", l.trim_right())
[INFO] [stdout]     |                                       ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:247:35
[INFO] [stdout]     |
[INFO] [stdout] 247 |                     format!("{}{}\n", &indent, l.trim_right())
[INFO] [stdout]     |                                                  ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:604:7
[INFO] [stdout]     |
[INFO] [stdout] 604 |         let (name, types) = File::detect_extensions(Path::new("hbs"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ----------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 251 |             .trim_right_matches("\n")
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/models/file.rs:608:7
[INFO] [stdout]     |
[INFO] [stdout] 608 |         let (name, types) = File::detect_extensions(Path::new("md"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^   ---------------------------------------- this expression has type `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected a tuple with 3 elements, found one with 2 elements
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(std::string::String, Vec<tpl::EngineType>, std::string::String)`
[INFO] [stdout]                found tuple `(_, _)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_left_matches`: superseded by `trim_start_matches`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:272:48
[INFO] [stdout]     |
[INFO] [stdout] 272 |     Ok(Value::String(value.as_str().unwrap_or("").trim_left_matches(&trim_chars[..]).into()))
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:277:48
[INFO] [stdout]     |
[INFO] [stdout] 277 |     Ok(Value::String(value.as_str().unwrap_or("").trim_right_matches(&trim_chars[..]).into()))
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/errors.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / error_chain! {
[INFO] [stdout] 20 | |     errors {
[INFO] [stdout] 21 | |         Warning(msg: String) {
[INFO] [stdout] 22 | |             description("Warning")
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     }
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:245:24
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     format!("{}\n", l.trim_right())
[INFO] [stdout]     |                                       ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right`: superseded by `trim_end`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:247:35
[INFO] [stdout]     |
[INFO] [stdout] 247 |                     format!("{}{}\n", &indent, l.trim_right())
[INFO] [stdout]     |                                                  ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:251:5
[INFO] [stdout]     |
[INFO] [stdout] 251 |             .trim_right_matches("\n")
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_left_matches`: superseded by `trim_start_matches`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:272:48
[INFO] [stdout]     |
[INFO] [stdout] 272 |     Ok(Value::String(value.as_str().unwrap_or("").trim_left_matches(&trim_chars[..]).into()))
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]    --> src/tpl/engine_tera.rs:277:48
[INFO] [stdout]     |
[INFO] [stdout] 277 |     Ok(Value::String(value.as_str().unwrap_or("").trim_right_matches(&trim_chars[..]).into()))
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/errors.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / error_chain! {
[INFO] [stdout] 20 | |     errors {
[INFO] [stdout] 21 | |         Warning(msg: String) {
[INFO] [stdout] 22 | |             description("Warning")
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |     }
[INFO] [stdout] 66 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 18 previous errors; 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `strange`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]   --> src/cmd/serve.rs:56:28
[INFO] [stdout]    |
[INFO] [stdout] 56 |             .bind(&address, move || Ok(FileServer { path: &serve_path }))
[INFO] [stdout]    |                             ------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returning this value requires that `'1` must outlive `'2`
[INFO] [stdout]    |                             |     |
[INFO] [stdout]    |                             |     return type of closure is std::result::Result<FileServer<'2>, std::io::Error>
[INFO] [stdout]    |                             lifetime `'1` represents this closure's body
[INFO] [stdout]    |
[INFO] [stdout]    = note: closure implements `Fn`, so references to captured variables can't escape the closure
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "22cddf6c2c4b76dbe6ca34dc6e119cee3834f908afe2d8fa35677944c4384829", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22cddf6c2c4b76dbe6ca34dc6e119cee3834f908afe2d8fa35677944c4384829", kill_on_drop: false }`
[INFO] [stdout] 22cddf6c2c4b76dbe6ca34dc6e119cee3834f908afe2d8fa35677944c4384829
